package com.ruoyi.customerPool.mapper;

import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.domain.entity.SysDept;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.customerPool.domain.vo.CustomerPoolVo;
import com.ruoyi.customerPool.domain.vo.UserVo;
import java.util.List;
import org.apache.ibatis.annotations.Param;

/**
 * 客户池
 */
public interface CustomerPoolMapper {


    /**
     * 客户池
     */
    Page<CustomerPoolVo> selectCustomerPool(@Param("page") Page<CustomerPoolVo> page,
            @Param(Constants.WRAPPER) Wrapper<CustomerPoolVo> queryWrapper);


    /**
     * 本级客户池
     */
    Page<CustomerPoolVo> selectPageSameLevelPoolList(@Param("page") Page<CustomerPoolVo> page,
            @Param(Constants.WRAPPER) Wrapper<CustomerPoolVo> queryWrapper);

    /**
     * 下级客户池
     */
    Page<CustomerPoolVo> selectPageLowerLevelPoolList(@Param("page") Page<CustomerPoolVo> page,
            @Param(Constants.WRAPPER) Wrapper<CustomerPoolVo> queryWrapper);

    /**
     * 上级客户
     */
    Page<CustomerPoolVo> querySuperiorCustomerList(@Param("page") Page<CustomerPoolVo> page,
            @Param(Constants.WRAPPER) Wrapper<CustomerPoolVo> queryWrapper);

    /**
     * 根据当前部门id查询下面所有的部门id
     *
     * @param deptId 当前登录人部门id
     * @return
     */
    List<String> lowerDept(@Param("deptId") Long deptId);

    /**
     * 根据当前部门id查询上面的所有部门id
     *
     * @param deptId
     * @return
     */
    List<String> superiorDept(@Param("deptId") Long deptId);


    /**
     * 查找当前登录用户所属部门下的业务员
     * @param queryWrapper
     * @return
     */
    List<UserVo> getUserList(@Param(Constants.WRAPPER) Wrapper<SysUser> queryWrapper);


    List<SysDept> selectDeptList(@Param(Constants.WRAPPER) Wrapper<SysDept> queryWrapper);


}
